1,989 research outputs found

    Logic Programming Applications: What Are the Abstractions and Implementations?

    Full text link
    This article presents an overview of applications of logic programming, classifying them based on the abstractions and implementations of logic languages that support the applications. The three key abstractions are join, recursion, and constraint. Their essential implementations are for-loops, fixed points, and backtracking, respectively. The corresponding kinds of applications are database queries, inductive analysis, and combinatorial search, respectively. We also discuss language extensions and programming paradigms, summarize example application problems by application areas, and touch on example systems that support variants of the abstractions with different implementations

    High-level Cryptographic Abstractions

    Full text link
    The interfaces exposed by commonly used cryptographic libraries are clumsy, complicated, and assume an understanding of cryptographic algorithms. The challenge is to design high-level abstractions that require minimum knowledge and effort to use while also allowing maximum control when needed. This paper proposes such high-level abstractions consisting of simple cryptographic primitives and full declarative configuration. These abstractions can be implemented on top of any cryptographic library in any language. We have implemented these abstractions in Python, and used them to write a wide variety of well-known security protocols, including Signal, Kerberos, and TLS. We show that programs using our abstractions are much smaller and easier to write than using low-level libraries, where size of security protocols implemented is reduced by about a third on average. We show our implementation incurs a small overhead, less than 5 microseconds for shared key operations and less than 341 microseconds (< 1%) for public key operations. We also show our abstractions are safe against main types of cryptographic misuse reported in the literature

    Deletion of diacylglycerol-responsive TRPC genes attenuates diabetic nephropathy by inhibiting activation of the TGFβ1 signaling pathway

    Get PDF
    TRPC6 plays a critical role in proteinuric kidney diseases, and TRPC3 is involved in tubulointerstitialdamage and renal fibrosis in obstructed kidneys. Podocyte loss is a characteristic event in diabetic nephropathy(DN). The aim of this study was to examine whether deletion of the closely related diacylglycerol (DAG)-responsiveTRPCs in mice (TRPC3/6/7-/-) affects diabetes-induced renal dysfunction and podocyte loss. We compared urinevolume, kidney hypertrophy, glomerular enlargement, albuminuria and podocyte loss between wild type (WT) andTRPC3/6/7-/- diabetic mice. Finally, we examined whether the TGFβ1 signaling pathway is changed in diabetic WTand TRPC3/6/7-/- mice. TRPC6 protein in the renal cortex was increased in WT diabetic mice. High glucose (HG)treatment increased TRPC6 expression in human podocytes. TRPC3 protein, however, was not altered in eitherdiabetic mice or HG-treated human podocytes. Although diabetic WT and TRPC3/6/7-/- mice had similar levels ofhyperglycemia, the TRPC3/6/7-/- diabetic mice showed less polyuria, kidney hypertrophy, glomerular enlargement,albuminuria, and had lost less podocytes compared with WT diabetic mice. In addition, we observed decreasedexpression of anti-apoptotic Bcl2 and increased expression of pro-apoptotic cleaved caspase 3 in WT diabetic mice,but such changes were not significant in TRPC3/6/7-/- diabetic mice. Western blot and immunohistochemistry revealedthat TGFβ1, p-Smad2/3, and fibronectin were upregulated in WT diabetic mice; however, expression of thesesignaling molecules was not changed in TRPC3/6/7-/- diabetic mice. In conclusion, deletion of DAG-responsiveTRPCs attenuates diabetic renal injury via inhibiting the upregulation of TGFβ1 signaling in diabetic kidneys.Fil: Liu, Benju. Huazhong University of Science and Technology; ChinaFil: He, Xiju. Huazhong University of Science and Technology; ChinaFil: Li, Shoutian. Yangtze University; ChinaFil: Xu, Benke. Yangtze University; ChinaFil: Birnbaumer, Lutz. Pontificia Universidad Católica Argentina "Santa María de los Buenos Aires". Instituto de Investigaciones Biomédicas. Consejo Nacional de Investigaciones Científicas y Técnicas. Oficina de Coordinación Administrativa Houssay. Instituto de Investigaciones Biomédicas; ArgentinaFil: Liao, Yanhong. Huazhong University of Science and Technology; Chin

    Incremental Computation for Transformational Software Development

    Get PDF
    Given a program f and an input change \Phi, we wish to obtain an incremental program that computes f(x \Phi y) efficiently by making use of the value of f(x), the intermediate results computed in computing f(x), and auxiliary information about x that can be inexpensively maintained. Obtaining such incremental programs is an essential part of the transformational-programming approach to software development and enhancement. This paper presents a systematic approach that discovers a general class of useful auxiliary information, combines it with useful intermediate results, and obtains an efficient incremental program that uses and maintains these intermediate results and auxiliary information. We give a number of examples from list processing, VLSI circuit design, image processing, etc. 1 Introduction Software engineering is the systematic approach to the development, operation, maintenance, and retirement of software [1]. The transformational-programming approach to software engine..
    corecore